\section{Gestion de panne d'un serveur}

Dans les systèmes distribués la tolérance au panne est souvent une problématique difficile résoudre. Dans cette section un prosition de solution sera présenté.

\subsection{Solution} 

A la première connexion client-serveur le serveur transmet toutes les adresses de ses clones, ce qui permettra au client  en cas de panne de se connecter à un autre serveur identique. 

Mais un autre problème se pose, c'est comment s'assurer de la cohérence entre un serveur et ses clones. 

Chaque serveur a horloge vectoriel, qui pour chaque adresse ip d'un client associera une horloge logique.

Quand un client transmet un message, le message sera estampillé avec son adresse et son horloge. Un fois le massege reçu le server transmet a tous ses clone le message et met a jour sont horloge logique. Les clone a leur tour doivent faire de même. 

Un serveur ne pourra pas recevoir deux fois un même message car effet a la réception d'un message il testera si l'horloge du message coincidence avec celle son horloge vectoriel. Si c'est la cas le serveur clone met met à jour son horloge vectorel sinon le serveur clone ignora le message.

Avec cette méthode en cas de crash d'un serveur le client se connectera un à serveur clone cohérent.

\begin{figure}
\centering
\includegraphics[scale=0.5]{img/reseau}
\end{figure}
